package com.tbit.uqbike.webmanager.dao.core;

import com.tbit.uqbike.object.pojo.MoneyData;
import com.tbit.uqbike.object.pojo.RideLog;
import com.tbit.uqbike.object.pojo.UserAccountLog;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 用户资金变动日志dao
 *
 * @author Leon
 * 2017年2月24日 下午4:02:36
 */
public interface UserAccountLogDao {
    /**
     * 添加
     *
     * @param userAccountLog
     */
    void insert(UserAccountLog userAccountLog);


    /**
     * 查询总数
     *
     * @param params
     * @return
     */
    Integer queryCount(Map<String, Object> params);

    /**
     * 分页查询
     *
     * @param params
     * @return
     */
    List<UserAccountLog> queryPage(Map<String, Object> params);

    /**
     * 分页查询品牌旗下用户金额变动
     *
     * @return
     */
    List<UserAccountLog> getPage(Map<String, Object> params);

    /**
     * 总数
     *
     * @param params
     * @return
     */
    Integer getCount(Map<String, Object> params);

    /**
     * 导出
     *
     * @param params
     * @return
     */
    List<UserAccountLog> export(Map<String, Object> params);

    /**
     * 充值消费总金额
     *
     * @return
     */
    MoneyData getSum(Map<String, Object> params);

    void updateMoney(UserAccountLog userAccountLog);

    UserAccountLog getByUserAccountLog(RideLog rides);

    List<Map<String, Object>> statYerData(Map<String, Object> map);

    Map<String, Object> statByYer(Map<String, Object> map);

    /**
     * 获取礼品卡退款金额
     * @param userId    用户id
     * @param orderId   订单号
     * @return List<UserAccountLog>
     */
    List<UserAccountLog> getGiftByRemark(@Param("userId")Integer userId, @Param("orderId") String orderId);
}